import { useState, useEffect } from 'react'
export function useRequest<T = any>(request: Function) {
  const [loading, setLoading] = useState(true)
  const [error, setError] = useState(null)
  const [data, setData] = useState<{ code: number; data: T; message: string }>()
  useEffect(() => {
    request()
      .then((resp: any) => {
        setData(resp.data)
      })
      .catch((error: any) => {
        setError(error)
      })
      .finally(() => {
        setLoading(false)
      })
  }, [])
  return {
    loading,
    error,
    data,
  }
}
